In coralseed, coral settlement is determined by a) larval competency and b) probability of settlement in any given habitat. As outlined in the theory section, different habitats with have different settlement probabilities based on habitat type matching larval settlment in experimental assays: reef slopes will have high probability of settlement, inner reef flats lower probability. As coralseed uses the Allen coral atlas polygons, if p = 1 for settlement, then a larvae has to settle somewhere in the habitat.

To determine where larvae settle in a given polygon, coralseed uses three different approaches to determining spatial patterns of settlement:

1. Additive settlement algorithm

assumes a larvae will settle somewhere in a habitat if p=1 (i.e. coralseed generates a random sample along the particle track within the habitat).

library(coralseed)
library(ggplot2)
library(tidyverse)
library(sf)
library(tmap)

seascape <- seascape_probability(reefoutline=reef_map, habitat=benthic_map)

particles <- seed_particles(example="mermaid", seascape=seascape, probability="additive",
                            limit_time=3, competency.function = "exponential", set.seed=1,
                            simulate.mortality = "none", simulate.mortality.n = 0.1, 
                            return.plot=FALSE, silent=TRUE)

settlers <-  settle_particles(particles, probability="additive", set.seed=1, sample.n=10, silent=TRUE)
particles <- particles |> filter(id %in% settlers$points$id)

map_coralseed(seed_particles=particles, settle_particles=settlers, 
              seascape_probability=seascape, restoration.plot=c(100,100), 
              show.tracks = TRUE)

2. Rapid settlement algorithm

assumes a larvae will settle immediately in a habitat if p=1 (i.e. coralseed takes the first time-step along the particle track within the habitat).

Note this produces ecologically unrealistic settlement patterns along the border of polygons and should be used only for testing purposes (see below).

settlers <-  settle_particles(particles, probability="rapid", set.seed=1, sample.n=10, silent=TRUE)

map_coralseed(seed_particles=particles, settle_particles=settlers, 
              seascape_probability=seascape, restoration.plot=c(100,100), 
              show.tracks = TRUE)

3. Lagged settlement algorithm

assumes a larvae will settle within the first ten minutes in a habitat if p=1 (i.e. coralseed takes the first ten minutes and samples randomly along each particle track within the habitat).

settlers <-  settle_particles(particles, probability="lagged", set.seed=1, sample.n=10, silent=TRUE)

map_coralseed(seed_particles=particles, settle_particles=settlers, 
              seascape_probability=seascape, restoration.plot=c(100,100), 
              show.tracks = TRUE)

The lagged and additive sampling processes will produce different results depending on the size of the polygon and the speed the particle passes through: if particles pass through habitats within 10 minutes, they will produce largely similar results. If polygons are large or current speed slow, then additive settlement will produce more spatially dispersed patterns while lagged will produce clusters closer to the edges of borders.

In practice, while the settlement algorithms produce different fine-scale patterns of settlement at the scale of metres, this is largely aesthetic in most model simulations and does not impact the larger scale (i.e. 10-100’s meter or within habitat/polygon scales).

Note: coralseed doesn’t account for two processes currently that will be addressed in future versions:

  1. Larval “attraction”: chemical cues from habitats with positive settlement cues may cause larvae to selectively swim for settlement (see Dixson et al 2014). In practice this is hard to code as i) particle tracks are hard-wired, and while spatial buffers can be used to identify habitats within a given distance, forcing settlement if p=1 is difficult using anything other than the rapid algorithm which produces unrealistic results, ii) while lab experiments demonstrate substrate electivity, the capacity of larvae to physically swim against currents at ecologically relevant scales is debatable (see Hata et al 2017), and iii) the only paper attempting to validate this in field settings (Dixson et al 2014) has since been retracted.

  2. Benthic boundary layers: coralseed assumes larvae are free flowing in currents and doesn’t account for “sticky” benthic boundary conditions. A dev version of coralseed slows down larvae by 3-fold when p=1 and larvae pass across reef substrates to simulate “searching” behaviour, but this has so far i) been difficult to implement and ii) difficult to parameterise with anything other than guestimates.